﻿/**
 *┌──────────────────────────────────────────────────────────────┐
 *│ Copyright (c) 2024  All Right Reserved.
 *│ CLR 版本：4.0.30319.42000
 *│ 机器名称：YPW
 *│ 文件名称：PersonViewModel
 *│ 类 名 称：PersonViewModel
 *│ 命名空间：WinForm.CommunityToolkit.ViewModels
 *└──────────────────────────────────────────────────────────────┘
 *┌──────────────────────────────────────────────────────────────┐
 *│ 创建时间：24-12-11 1:32
 *│ 创 建 人：杨彭伟
 *│ 修改时间：
 *│ 修 改 人：
 *│ 功能描述：
 *└──────────────────────────────────────────────────────────────┘
 */
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System.ComponentModel.DataAnnotations;
using WinForm.CommunityToolkit.Models;

namespace WinForm.CommunityToolkit.ViewModels
{
    public class PersonViewModel : ObservableObject
    {
        private Person person = new Person();
        public Person Person
        {
            get => person;
            set => SetProperty(ref person, value);
        }

        public RelayCommand SaveCommand { get; }

        public PersonViewModel()
        {
            SaveCommand = new RelayCommand(Save);
        }

        private void Save()
        {
            var validationResults = new List<ValidationResult>();
            var context = new ValidationContext(Person);
            if (!Validator.TryValidateObject(Person, context, validationResults, true))
            {
                // 处理验证失败的情况
                var errors = string.Join("\n", validationResults.Select(v => v.ErrorMessage));
                MessageBox.Show(errors, "Validation Errors", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            // 处理保存逻辑
        }
    }
}
